Amazon SageMaker Studio アプリケーションのセキュリティアップデートの通知が来たので、SageMaker ドメインを削除する対応をした
こんにちは、CX 事業本部製造ビジネステクノロジー部の若槻です。
使用している AWS アカウントの Health Dashboard に下記のような通知がありました。
お使いの Amazon SageMaker Studio アプリケーションには、CVE-2024-21626 [1] に対処するための重要なセキュリティ関連のアップデートが必要です。Amazon SageMaker は、2024 年 2 月 7 日から 2024 年 2 月 21 日までの間にこれらの Studio アプリケーションを更新する予定です。このシステムによって開始される更新 [2] では、Studio アプリケーションが実行されている基盤となるサービスソフトウェアに関連するアップグレードが実行されます。これらのアップデートは、2024 年 2 月 2 日以降に作成されるすべての Studio アプリケーションに含まれます。
この更新中、保存されていない作業はすべて失われ、進行中の操作はすべて終了します。影響を受ける可能性を避けるため、2024 年 2 月 7 日までに Studio アプリケーションを更新 [3] [4] してください。
影響を受けるStudioアプリケーションのリストは、[影響を受けるリソース] タブにあります。
脆弱性対応のため Amazon SageMaker Studio アプリケーションの更新を行うが、その際に保存されていない作業が失われてしまうとのことです。
下記によると CVE-2024-21626 は OSS のコンテナ管理システムに起因する、重大度 Important(4 段階中上から 2 番目)の脆弱性とのこと。
通知の Affected resources タブを見ると、影響を受ける Studio アプリケーションが 1 つあります。
リソースのリンクを開くと、SageMaker のドメインが 1 つ作成されていました。
以前 SageMaker のワークショップを実施した際のリソースが削除されずに残っていたようです。
リソースを引き続き残しておく必要性も無かったので、今回はこの SageMaker のドメイン(アプリケーション)を削除する対応をしてみました。
やってみた
削除手順は基本的に下記ドキュメントに従えば良いようです。
マネジメントコンソールから削除する方法と、AWS CLI から削除する方法がありますが、今回は AWS CLI で削除してみます。
ドメイン一覧の取得
まずは SageMaker のドメイン一覧を取得します。
$ aws sagemaker list-domains { "Domains": [ { "DomainArn": "arn:aws:sagemaker:ap-northeast-1:XXXXXXXXXXXX:domain/d-jjhgsursfe8q", "DomainId": "d-jjhgsursfe8q", "DomainName": "default-1662733123353", "Status": "InService", "CreationTime": "2022-09-09T23:18:46.294000+09:00", "LastModifiedTime": "2022-09-09T23:23:45.292000+09:00", "Url": "https://d-jjhgsursfe8q.studio.ap-northeast-1.sagemaker.aws" } ] }
SageMaker のドメインは SageMaker Studio を使用するための環境で、Amazon EFS ボリューム、ユーザーリスト、アプリケーション、Amazon VPC の設定などが含まれています。
アプリケーション一覧の取得
削除したいドメインの ID を指定して、アプリケーション一覧を取得します。
domainId=d-jjhgsursfe8q $ aws sagemaker list-apps \ --domain-id-equals ${domainId} { "Apps": [ { "DomainId": "d-jjhgsursfe8q", "UserProfileName": "default-1662733047253", "AppType": "JupyterServer", "AppName": "default", "Status": "InService", "CreationTime": "2023-06-03T20:14:29.874000+09:00" } ] }
SageMaker のアプリケーションは、SageMaker Studio で Jupyter ノートブックなどを実行する環境です。
アプリケーションの削除
先程取得したアプリケーションの情報を指定して、アプリケーションを削除します。
userProfileName=default-1662733047253 appName=default appType=JupyterServer aws sagemaker delete-app \ --domain-id ${domainId} \ --app-name ${appName} \ --app-type ${appType} \ --user-profile-name ${userProfileName}
ユーザープロファイル一覧の取得
ドメインに紐づくユーザープロファイル一覧を取得します。
$ aws sagemaker list-user-profiles \ --domain-id-equals ${domainId} { "UserProfiles": [ { "DomainId": "d-jjhgsursfe8q", "UserProfileName": "default-1662733047253", "Status": "InService", "CreationTime": "2022-09-09T23:24:01.667000+09:00", "LastModifiedTime": "2022-09-09T23:24:03.850000+09:00" } ] }
ユーザープロファイルの削除
先程取得したユーザープロファイルの情報を指定して、ユーザープロファイルを削除します。
aws sagemaker delete-user-profile \ --domain-id ${domainId} \ --user-profile-name ${userProfileName}
スペース一覧の取得
ドメインに紐づくスペース一覧を取得します。今回のドメインではスペースが存在していませんでした。
aws sagemaker list-spaces \ --domain-id ${domainId} { "Spaces": [] }
SageMaker のスペースを使用すると、メンバー間でリアルタイムなコラボレーションが可能になります。
ドメインの削除
最後にドメインを削除します。
$ aws sagemaker delete-domain \ --domain-id ${domainId} \ --retention-policy HomeEfsFileSystem=Delete
コマンド実行後にコンソールでドメインを確認すると、削除中ステータスとなっています。
少し待つと削除が完了し、ドメインが表示されなくなりました。
おわりに
Amazon SageMaker Studio アプリケーションのセキュリティアップデートの通知が来たので、SageMaker ドメインを削除する対応をしてみました。
同様の通知が来た人で、私と同じように不要なリソースが残っている場合は、参考にしてみてください。
参考
以上